package bit_pratice.day3;

import java.util.HashMap;
import java.util.Map;

/**
 * @author 美女
 * @date 2022/04/20 21:38
 **/
public class Num2_2 {
    public int MoreThanHalfNum_Solution(int [] array) {
        Map<Integer,Integer> map=new HashMap<>();
        //将数及对应出现次数存储到Map集合
        //找到超过一半的数字对应的索引(找到最大的数对应索引)
        int maxCount=0;//获取Map集合最大val
        int res=0;
        for(int i=0;i<array.length;i++){
            //遍历集合
//            if(map.containsKey(array[i])){
//                map.put(array[i],map.get(array[i])+1);
//                maxCount=maxCount>map.get(array[i])?maxCount:map.get(array[i]);
//            }else{
//                map.put(array[i],1);
//                maxCount=maxCount>map.get(array[i])?maxCount:map.get(array[i]);
//            }
            map.put(array[i],map.getOrDefault(array[i],0)+1);
            maxCount=maxCount>map.get(array[i])?maxCount:map.get(array[i]);
            //此时数组全部存入Map集合，遍历Map集合找到val最大的元素（超过二分之一）
            //找最大元素
            for (Map.Entry<Integer,Integer> entry:map.entrySet()){
                if(maxCount==entry.getValue()){
                    if(entry.getValue()>array.length/2){
                        res=entry.getKey();
                    }
                }
            }

        }
        return res;
    }
}
